#include "stdafx.h"

#include "py_thermal_calc_model.h"
#include "thermal_calc_model.h"

#include "py_thermal_data.h"
#include "thermal_data.h"

#include "thermal_reservoir_simulator.h"
#include "py_thermal_reservoir_simulator.h"

#include "thermal_keywords.h"

using namespace blue_sky;

namespace blue_sky
{
  BLUE_SKY_PLUGIN_DESCRIPTOR_EXT ("bs_bos_thermal", "1.0.0", "Blue Sky BOS Thermal Plugin", "Thermal plugin", "bs_bos_thermal")

  BLUE_SKY_REGISTER_PLUGIN_FUN
  {
	bool res = true;
    const plugin_descriptor & pd = *bs_init.pd_;
	res &= blue_sky::thermal_calc_model_register_type (pd);     
	res &= blue_sky::register_thermal_idata (pd);
	res &= blue_sky::thermal_reservoir_simulator_register_type(pd);

	res &= BS_KERNEL.register_type(*bs_init.pd_, thermal_keywords<base_strategy_fi>::bs_type()); BS_ASSERT (res);
    res &= BS_KERNEL.register_type(*bs_init.pd_, thermal_keywords<base_strategy_di>::bs_type()); BS_ASSERT (res);
    res &= BS_KERNEL.register_type(*bs_init.pd_, thermal_keywords<base_strategy_mixi>::bs_type()); BS_ASSERT (res);

    BS_ASSERT (res);
    return res;
  }
}

#ifdef BSPY_EXPORTING_PLUGIN
using namespace blue_sky::python;
BLUE_SKY_INIT_PY_FUN
{
  using namespace boost::python;
  python::py_export_thermal_calc_model();
  python::py_export_thermal_data();
  python::py_export_thermal_reservoir_simulator();
}
#endif //BSPY_EXPORT_PLUGIN